package Dominio;

import java.io.Serializable;
import java.util.ArrayList;

import android.annotation.SuppressLint;
import com.google.android.maps.GeoPoint;

@SuppressLint("NewApi")
public class Ruta implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String usuario;
	private String dificultad;
	private Integer tiempo;
	private Integer distacia;
	private Double puntuacion;
	private Integer modo;
	private String nombre;
	private String ciudad;
	private String descripcion;
	private String creador;
	private Integer numPtosTuristicos;
	private Integer id;
	private ArrayList <CheckPoint> checkPoints;
	private ArrayList <Comentario> comentarios;
	private ArrayList <Coordenada> coordenadas;
	private Integer favorita;
	private Integer compartida;

	public Ruta() {
		super();
		this.usuario="";
		this.dificultad = "";
		this.tiempo = -1;
		this.distacia = -1;
		this.puntuacion = -1.0;
		this.modo = -1;
		this.nombre = "";
		this.ciudad = "";
		this.descripcion = "";
		this.creador = "";
		this.numPtosTuristicos = -1;
		this.checkPoints = null;
		this.comentarios = null;
		this.coordenadas = null;
		this.compartida=0;
	}

	public Ruta(String usuario, String dificultad, Integer tiempo,
			Integer distacia, Double puntuacion, Integer modo, String nombre,
			String ciudad, String descripcion, String creador,
			Integer numPtosTuristicos, Integer id,
			ArrayList<CheckPoint> checkPoints,
			ArrayList<Comentario> comentarios,
			ArrayList<Coordenada> coordenadas, Integer favorita,
			Integer compartida) {
		super();
		this.usuario = usuario;
		this.dificultad = dificultad;
		this.tiempo = tiempo;
		this.distacia = distacia;
		this.puntuacion = puntuacion;
		this.modo = modo;
		this.nombre = nombre;
		this.ciudad = ciudad;
		this.descripcion = descripcion;
		this.creador = creador;
		this.numPtosTuristicos = numPtosTuristicos;
		this.id = id;
		this.checkPoints = checkPoints;
		this.comentarios = comentarios;
		this.coordenadas = coordenadas;
		this.favorita = favorita;
		this.compartida = compartida;
	}

	public Ruta(Integer id, String dificultad, Integer distancia, String nombre, String ciudad,Integer compartida, String usuario){
		
			this.compartida=compartida;
		this.id=id;
		this.nombre=nombre;
		this.dificultad=dificultad;
		this.distacia=distancia;
		this.ciudad=ciudad;
		this.usuario=usuario;
	}
	
	public Integer getId(){
		return id;
	}
	
	
	public void setId(Integer id){
		this.id=id;
	}
	
	
	public ArrayList<GeoPoint> getGeopoints() {
		return coordenadaToGeopoint(coordenadas);
	}

	public String getDificultad() {
		return dificultad;
	}

	public void setDificultad(String dificultad) {
		this.dificultad = dificultad;
	}

	public Integer getTiempo() {
		return tiempo;
	}

	public void setTiempo(Integer tiempo) {
		this.tiempo = tiempo;
	}

	public Integer getDistacia() {
		return distacia;
	}

	public void setDistacia(Integer distacia) {
		this.distacia = distacia;
	}

	public Double getPuntuacion() {
		return puntuacion;
	}

	public void setPuntuacion(Double puntuacion) {
		this.puntuacion = puntuacion;
	}

	public Integer getModo() {
		return modo;
	}

	public void setModo(Integer modo) {
		this.modo = modo;
	}

	public String getCiudad() {
		return ciudad;
	}

	public void setCiudad(String ciudad) {
		this.ciudad = ciudad;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public String getCreador() {
		return creador;
	}

	public void setCreador(String creador) {
		this.creador = creador;
	}

	public Integer getNumPtosTuristicos() {
		return numPtosTuristicos;
	}

	public void setNumPtosTuristicos(Integer numPtosTuristicos) {
		this.numPtosTuristicos = numPtosTuristicos;
	}

	public ArrayList<CheckPoint> getCheckPoints() {
		return checkPoints;
	}

	public void setCheckPoints(ArrayList<CheckPoint> checkPoints) {
		this.checkPoints = checkPoints;
	}

	public ArrayList<Comentario> getComentarios() {
		return comentarios;
	}

	public void setComentarios(ArrayList<Comentario> comentarios) {
		this.comentarios = comentarios;
	}

	public ArrayList <Coordenada> getCoordenadas() {
		return coordenadas;
	}

	public void setCoordenadas(ArrayList <Coordenada> coordenadas) {
		this.coordenadas = coordenadas;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}	
	
	public Integer getFavorita() {
		return favorita;
	}

	public void setFavorita(Integer favorita) {
		this.favorita = favorita;
	}
	
    public static ArrayList<GeoPoint> coordenadaToGeopoint(ArrayList<Coordenada> coordenadas) {
    	ArrayList<GeoPoint> geoPoints = new ArrayList<GeoPoint>(coordenadas.size());
    	for (Coordenada coord: coordenadas) {
    		geoPoints.add(new GeoPoint((int) (coord.getLatitud() * 1E6), (int) (coord.getLongitud() * 1E6)));
    	}
    	return geoPoints;
    }

	public String getUsuario() {
		return usuario;
	}

	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}

	public Integer getCompartida() {
		return compartida;
	}

	public void setCompartida(Integer compartida) {
		this.compartida = compartida;
	}
}
